uniform vec3 env_cameraPos;
uniform float env_visualRange;
uniform float env_fogLength;

varying vec3 _position;
varying vec3 _texture;
varying vec3 _normal;
varying float sunStrength;

uniform sampler2D modelTexture;

void main(void) {
	/*
	 * obliczanie ostatecznej wartości koloru na podstawie wcześniej
	 * wyliczonego natężenia światła
	 */
	vec4 result = vec4(sunStrength,sunStrength,sunStrength, 1.0);
	/*
	 * obliczanie mgły - najpierw dystans kamera - punkt
	 */
	float dist = distance(env_cameraPos, _position);
	//jeżeli za visualRange
	//if (dist + env_fogLength > env_visualRange) {
		result.a = min(max((env_visualRange - dist) / env_fogLength, 0.0), 1.0);
	//} else {
	//	result.a = 1.0;
	//}

	vec4 texture = texture2D(modelTexture, vec2(_texture.x, 1.0-_texture.y));

	gl_FragColor = result * texture;

}
